package com.xatz.scanner

import okhttp3.logging.HttpLoggingInterceptor
import timber.log.Timber

/**
 *
 * requestBody.writeTo(buffer);
 *source.request(Long.MAX_VALUE); // Buffer the entire body
 * 这两行，一个是操作请求的body，一个是操作结果的body，后一行操作结果的地方还给了一个最大值。这会有什么问题呢，如果你在这里打断点会发现，
 * 下载文件的请求，走到这里竟然“不执行了”，其实是卡在这里了（至于为什么没有卡死UI，因为是开启了线程执行的）。这里需要将内容全部请求出来，
 * 然后方便后面的复制buffer，然而在你下载东西的时候，内容是很多的（几M,几十M，甚至几百M），那么这里的卡住的时长和文件大小成正比，
 * 如果文件太大，内存不够，那么系统会不停地GC去获取更多内存，甚至可能会发生OOM。这就是为什么一直没有进度回调的原因了，
 * 因为：这里日志还没打印完成，而日志打印完成的前提是文件下载完成，所以直到文件完成下载，你才有可能接收到进度的回调
 * （同理：打印requestbody会影响上传进度回调）。
 *
 */
class HttpLogLogger : HttpLoggingInterceptor.Logger {
    override fun log(message: String) {
        if (BuildConfig.DEBUG) {
            Timber.d(message)
        }
    }
}